import markdown
from django.shortcuts import render, get_object_or_404
from .models import Article

def article_list(request):
    articles = Article.objects.all()
    return render(request, 'articles/list.html', {'articles': articles})


def calculate_reading_time(content):
    """计算阅读时间（按200字/分钟）"""
    word_count = len(content.split())
    return max(1, round(word_count / 200))

def article_detail(request, pk):
    article = get_object_or_404(Article, pk=pk)

    # 使用markdown扩展
    article.content = markdown.markdown(
        article.content,
        extensions=[
            'extra',       # 包含表格、缩写等扩展
            'codehilite',  # 语法高亮
            'toc',         # 目录生成
            'fenced_code', # 围栏代码块
            'tables',      # 表格支持
            'footnotes',   # 脚注
            'nl2br',       # 换行转<br>
        ],
        extension_configs={
            'codehilite': {
                'use_pygments': True,
                'css_class': 'highlight',
                'linenums': True,
            },
            'toc': {
                'title': '目录',
                'anchorlink': True,
            }
        }
    )

    return render(request, 'articles/detail.html', {'article': article})
